Hey,
ich habe ein Problem mit meinem Textdraw, der Informationen von Spielern während des Spectaten übergibt (HP, FPS, Ping, Waffen etc.).
Um genau zu sein betrifft das die Waffeninformationen, denn diese werden zwar dargestellt, aber nur die Waffendaten im ersten (nullten?) Waffenslot werden übergeben
bzw. als Textdraw dargestellt.
Das bedeutet alle anderen Waffendaten in anderen Slots werden ignoriert und nicht dargestellt.
Ich habs zwar noch nicht getestet aber wäre es richtig, einfach noch ein Textdraw im gleichen Format zu erstellen?
grobe Skizze vom TextDraw (ASCII Art Level: -1):
Beobachtungsinformationen von Name(ID) <- Text[7]
----------------------------------------------------
HP: , Ping:, FPS: | <- Text[6]
BOX |
Waffen: | <-Text[8]
WaffeX(Munition) | <-Text[9]
----------------------------------------------------
Code:
ocmd:spec(playerid, params[]){
TextDrawShowForPlayer(playerid,Text[6]); //Wesentliche
TextDrawShowForPlayer(playerid,Text[7]);
TextDrawShowForPlayer(playerid,Text[8]);
TextDrawShowForPlayer(playerid,Text[9]);
gSpecTimer[playerid] = SetTimerEx("SpecInfo",1000,1,"d",pID);
}
public SpecInfo(pID)
{
new info[128],info1[128],info2[128],Float:health,wp[2];
GetPlayerHealth(pID,health);
format(info,sizeof(info),"Beobachtungsinformationen von: %s (%d)",SpielerName(pID),pID);
format(info1,sizeof(info1),"HP: %.2f, Ping: %d, FPS: %d~n~~n~~n~",health,GetPlayerPing(pID),pFPS[pID]);
for(new x=0;x<6;x++){
GetPlayerWeaponData(pID,x,wp[0],wp[1]);
if(wp[0] != 0){
format(info2,sizeof(info2),"%d: %s(%d)",x,WaffenName[wp[0]],wp[1]);
TextDrawSetString(Text[9],info2);
}
}
TextDrawSetString(Text[6],info1);
TextDrawSetString(Text[7],info);
}
(Ist zwar nich die Effizienteste - vielleicht auch garnicht geignete Methode, (Timer wird für jeden, der den Befehl eingibt erstellt ) aber für den Anfang erstmal ist es so, da ich noch etwas unerfahren mit dynamischen TextDraws bin)